/*
package com.bkgy;

import java.util.List;

public class ModbusParserUtils {

    */
/**
            * 通用Modbus电文解析方法
           * @param rawData 原始字节流（包含完整报文头和数据）
            * @param isRequest 是否为请求报文（主站发往从站）
            * @return 解析后的结构化数据（寄存器地址、功能码、数据值等）
            *//*

    public static ModbusFrame parseModbusFrame(byte[] rawData, boolean isRequest) {
        ByteBuffer buffer = ByteBuffer.wrap(rawData)
                .order(ByteOrder.BIG_ENDIAN); // Modbus默认大端序[4](@ref)

        ModbusFrame frame = new ModbusFrame();

        // 解析报文头（以Modbus TCP为例）
        if (!isRequest) {
            frame.setTransactionId(buffer.getShort() & 0xFFFF);
            frame.setProtocolId(buffer.getShort() & 0xFFFF);
            frame.setLength(buffer.getShort() & 0xFFFF);
        }
        frame.setUnitId(buffer.get() & 0xFF);
        frame.setFunctionCode(buffer.get() & 0xFF);

        // 异常响应处理
        if ((frame.getFunctionCode() & 0x80) != 0) {
            frame.setErrorCode(buffer.get() & 0xFF);
            return frame;
        }

        // 根据功能码解析数据[3](@ref)
        switch (frame.getFunctionCode()) {
            case 0x03: // 读保持寄存器
            case 0x04: // 读输入寄存器
                parseReadResponse(buffer, frame);
                break;
            case 0x06: // 写单个寄存器
                parseWriteSingleResponse(buffer, frame);
                break;
            case 0x10: // 写多个寄存器
                parseWriteMultipleResponse(buffer, frame);
                break;
            // 可扩展其他功能码...
        }
        return frame;
    }

    private static void parseReadResponse(ByteBuffer buffer, ModbusFrame frame) {
        int byteCount = buffer.get() & 0xFF;
        List<Integer> registers = new ArrayList<>();
        for (int i = 0; i < byteCount; i += 2) {
            registers.add(buffer.getShort() & 0xFFFF);
        }
        frame.setRegisters(registers);
    }

}
*/
